package com.hahaliu.hahaliu.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hahaliu.hahaliu.pojo.dto.UserDTO;
import com.hahaliu.hahaliu.pojo.dto.UserLoginDTO;
import com.hahaliu.hahaliu.pojo.dto.UserRegisterDTO;
import com.hahaliu.hahaliu.pojo.entity.User;
import org.springframework.web.multipart.MultipartFile;

/**
* @author Liubuzhu
* @description 针对表【user】的数据库操作Service
* @createDate 2024-04-27 17:34:22
*/
public interface UserService extends IService<User> {

	/**
	 * 用户登录
	 * @param userLoginDTO
	 * @return
	 */
	User login(UserLoginDTO userLoginDTO);

	/**
	 * 管理员登录
	 * @param userLoginDTO
	 * @return
	 */
	User adminLogin(UserLoginDTO userLoginDTO);

	/**
	 * 新增用户
	 * @param userRegisterDTO
	 */
	void register(UserRegisterDTO userRegisterDTO);


	/**
	 * 更新用户个人信息
	 * @param userDTO
	 */
	void updateUserInfo(UserDTO userDTO);

	/**
	 * 更新用户头像
	 * @param uId
	 * @param file
	 * @return
	 */
	String updateUserAvatar(Integer uId, MultipartFile file);

	/**
	 * 根据用户名模糊查询用户
	 * @param name
	 * @return
	 */
	IPage<User> searchByNameLike(String name, Integer page, Integer quantity);

	/**
	 * 根据id查询用户信息
	 * @param id 用户ID
	 * @return 用户可见信息实体类 UserDTO
	 */
	UserDTO getUserById(Integer id);

	/**
	 * 获取当前登录用户信息
	 * @return
	 */
	UserDTO getPersonalInfo();
}
